Pueden proceder de un dataframe creado mediante agrupaciones: group_by(), count(), summarize() y que estan listas para pasarse a un reporte
Pueden ser creadas directamente desde la base nominal o individual con resultados estadisticos basicos de resumen (medidas de tendencia central, porcentajes, pruebas estadisticas)
Diversos formatos para exportar: MS word, Ms power point, pdf, Html, Ms Excel.
Al ser un producto final requiere de afinamiento en codigo para lograr la apariencia requerida para un reporte final: titulo, encabezados, centrado, ajuste de tamaño, etc.
{Flextable}
{gtsummary}
FlextableTidyverse y se utiliza con el operador %>%Todo dataframe debe pasar obligatoriamente por esta funcion para covertirla en objeto flextable que permitira trabjar otras funciones de la libreria Flextable
FlextableFlextableFlextableFlextableautofit()
save_as_docx()
theme_apa(), theme_booktabs(), theme_vanilla(), theme_zebra()
gtsummarygtsummaryA diferencia de flextable esta libreria actua sobre el data frame donde la información esta caso a caso (nominal), mientras que la anterior trabaja sobre dataframe consolidados o agrupados, casi ya para un producto final.
# A tibble: 6 × 4
trt age marker stage
<chr> <dbl> <dbl> <fct>
1 Drug A 23 0.16 T1
2 Drug B 9 1.11 T2
3 Drug A 31 0.277 T1
4 Drug A NA 2.07 T3
5 Drug A 51 2.77 T4
6 Drug B 39 0.613 T4
gtsummaryPrincipal función para producir tablas univariadas consolidadas (varias variables en una sola tabla)
Para fortuna del usuario, se puede utilizar con el operador %>% lo que la hace compatible con el Tidyverse
Miremos instrucciones para construir una sintaxis de una tabla de gtsummary:
gtsummaryFuente: https://www.danieldsjoberg.com/gtsummary/articles/tbl_summary.html
¿ Qué mas podrias ajustar en la tabla ?
¿ Podriamos hacer que la tabla sea comparativa?
Muertos vs Vivos
brote %>%
select(gender, age, outcome) %>%
tbl_summary(label = list(gender ~ "Sexo",
age ~ "Edad",
outcome ~ "Estado final"),
missing = "no",
by = outcome)| Characteristic | Death, N = 321 | Recover, N = 471 |
|---|---|---|
| Sexo | ||
| f | 9 (29%) | 12 (26%) |
| m | 22 (71%) | 34 (74%) |
| Edad | 36 (27, 49) | 26 (12, 40) |
| 1 n (%); Median (IQR) | ||
¿ Sera que hay diferencias estadisticamente significativas ?
brote %>%
select(gender, age, outcome) %>%
tbl_summary(label = list(gender ~ "Sexo",
age ~ "Edad",
outcome ~ "Estado final"),
missing = "no",
by = outcome) %>%
add_p()| Characteristic | Death, N = 321 | Recover, N = 471 | p-value2 |
|---|---|---|---|
| Sexo | 0.8 | ||
| f | 9 (29%) | 12 (26%) | |
| m | 22 (71%) | 34 (74%) | |
| Edad | 36 (27, 49) | 26 (12, 40) | 0.019 |
| 1 n (%); Median (IQR) | |||
| 2 Pearson's Chi-squared test; Wilcoxon rank sum test | |||
Nota: No olvidar que se debe evaluar la selección de una u otra prueba estadística
brote %>%
select(gender, age, outcome) %>%
tbl_summary(label = list(gender ~ "Sexo",
age ~ "Edad",
outcome ~ "Estado final"),
missing = "no",
by = outcome) %>%
add_p(test = list(age ~ "t.test", gender ~ "fisher.test"))| Characteristic | Death, N = 321 | Recover, N = 471 | p-value2 |
|---|---|---|---|
| Sexo | 0.8 | ||
| f | 9 (29%) | 12 (26%) | |
| m | 22 (71%) | 34 (74%) | |
| Edad | 36 (27, 49) | 26 (12, 40) | 0.013 |
| 1 n (%); Median (IQR) | |||
| 2 Fisher's exact test; Welch Two Sample t-test | |||
Curso R para Epidemiologos - FETP